#pragma once
#include<arpa/inet.h>
#include<netinet/in.h>
#include<string>

//封装socket地址类型
class InetAddress
{
    public:
        explicit InetAddress(uint16_t port=0,std::string ip="127.0.0.1");//可以只传端口号或者IP，更加灵活
        explicit InetAddress(const sockaddr_in &addr)//当接受连接时，直接从 accept() 返回的地址结构体初始化。
            :addr_(addr)
            {}
        std::string toIP() const;
        uint16_t toPort()const;
        std::string toIpPort() const;
        const sockaddr_in* getSockaddr() const
        {
            return &addr_;
        }
        void setSockAddr(const sockaddr_in &addr){addr_=addr;}
    private:
        sockaddr_in addr_;
};